在參加騰訊2016實習生招聘面試時,有兩道問題自己沒有想清楚也思考的不是很明白,面試結束時後悔沒有問面試官正解是什麼,回來後在搜索引擎上也沒有搜到相關的問題。
第一道題目:在多線程和大量並發環境下,如果有一個平均運行一百萬次出現一次的bug, 你如何調試這個bug。題主對於這種比較大的工程沒有接觸過所以沒有這方面的經驗,我回答的是:首先要試圖重現這個bug,在重現bug時,需要保留當時的一些狀態信息,然後進行調試,依次確定與這個bug有關的模塊(加樁和驅動)。聽到我的回答後,面試官說這個bug很難重現,這個時候你要怎麼處理或者重現呢。我回答說:那麼這個bug出現的概率比較小,如果沒有造成太大的影響能不能忽略。然後面試官說那10W次出現一次呢, 之後我就沒有了想法。
第二道題目的題意我不理解,題目是面試官給我的試卷上面的。題目描述:有一個類指針,指向類實例化的對象,在這個對象程序的運行過程中,程序崩潰了,後來發現是這個類指針的虛函數表被破壞了,現在如何定位這個問題。我把"如何定位這個問題"理解的是如何定位這個bug所在,然後我回答:知道虛函數表被破壞了,那麼問題不是在這裡嗎,可以依次確定是不是調用了應該調用的虛函數。然後面試官說虛函數表裡面的內容沒有問題,之後我有點蒙了,我回答說那是不是指向虛函數表的指針被破壞了。面試官說你可能沒有理解題意,所以我比較鬱悶,是不是還有另外的原因。
以下開放討論~~!
雖然沒在用C++,但是第二個問題是跟C++相關的。查了一下,可能跟這個stackoverflow的問題相關:
http://stackoverflow.com/questions/3065154/undefined-reference-to-vtable
費公太專業了~~!
其實我也不熟,只是剛好知道C++實作物件導向相關的技術概念跟關鍵字。
阿鬼,你還是說英文好了
我真是糊塗了,居然以為是老鷹大大去參加騰訊面試
差點中計了
這裡有102個回答,有興趣的人可以看看
知乎連結
哈哈!
就是知乎看的,覺得很有趣的題目~~!
原來是知乎看來的...不知道上面有怎樣的回答...
奇怪,我怎麼自動把關鍵字轉成英文來google了XD
最近閒來無事就會看看知乎,上面的解答越來越專業!
不論要不要換工作
我也覺得有空多去面試幾家公司
一方面了解外面有哪些人力需求
另一方面也能試試自己還有多少斤兩
+1
問題一的話也沒經驗(服務沒人用XD),不過剛剛找資料看到好玩的東西...
首先是Java對於Concurrent的支援: http://www.javaworld.com/article/2078809/java-concurrency/java-concurrency-java-101-the-next-generation-java-concurrency-without-the-pain-part-1.html
然後...即使是這樣,Netflix還是在高負載時出問題: https://github.com/Netflix/Hystrix/issues/985
最後抓到問題,跟GC有關,影響到Java Concurrent機制的運作...
回到問題一,如果我想要重現問題的話,我會先嘗試把系統安裝在資源受限的系統,尤其讓cpu、記憶體、iops等表現較差,然後做壓測...看看這樣會不會讓問題在更小的併發時就會發生。(當然log不能少)不過這類問題的發生跟架構、程式語言、工具都會有關係,沒有細節就很難找到好的劍來解決問題。
另外,一些測試工具似乎往「控制執行緒交錯」的方向發展,例如IBM的ConTest,另外也找到一些文章,例如Finding Complex Concurrency Bugs in Large Multi-Threaded Applications、Maple: A Coverage-Driven Testing Tool for Multithreaded Programs,都是關於這樣的測試技術,如何有效地找出問題。簡單說,就是透過控制執行緒的運行,讓不同執行緒之間交錯的各種可能情況盡量發生,來提高發生問題的機會,以找出問題。Mapple還會記錄執行緒交錯的組合及做過的測試,用測試覆蓋率來確保測試有效率地執行等等。
什麼叫專業?
這才叫專業
也不算專業啦,只是google查一下...
費大公是真正專業,佩服!
怎麼這些中文看起來跟英文一樣
拆開來都看得懂,合再一起就看不懂了
我看你說台語我應該可以多聽懂一點
I do believe that you won't understand what the questions are even the Eagle speaks Taiwanese.
賽門說的也對啦
我還是搞硬體外加唬爛就好
太難的...我還是不要碰好了
騙錢麻....這麼專業幹嘛...
賽門的應該我居然看得懂...真難得
賽門的""英文""我居然看得懂...真難得
抱歉今天感冒頭很暈
Today is english day.
Yeah~~Nick the Wolf, let's RNR.